這是最後一篇有關git的了!
剛好是我最近遇到的問題
正如同一開始把git跟github搞混,
git flow跟github flow也是花了我不小的時間去理解
其實除了github提供remote repository之外,
其實還有其他網站有提供。
例如:gitlab、Gogs......
其他的網站我不清楚,
只拿兩個我有研究的吧!
所以我們先從最基本的git flow開始說起。
如果只是一個人自己奮鬥,自己的版本自己顧,
不用跟別人的分支合併,會省掉一堆麻煩。
但是,沙烏地阿拉伯的俗諺有說
一個人掰不彎的樹幹,一群人還是掰不彎。
但是......
一個人的時間有限,一群人才能讓產品快速成型,跟上潮流。
這時候就要協同工作了,因此有了git flow。
如我自己畫的圖所示,這是比較簡單的git flow示意圖。
只有master跟dev兩條主要的分支,我在學習的時候也有看過三條以上為主的分支。
(把debug獨立出dev,專門在發行到master前修bug之類的)
不過我就以兩條來介紹吧!
首先,我畫的git flow含有2條主要分支,
master主要是發行上市的分支,必須確保他能運行。
而dev則是develop的縮寫,iT人在這上面努力奮鬥,
開啟各式各樣的分支去寫功能、切版面、debug......
等到確定沒問題才會merge到master去讓用戶更新。
這就是git flow的流程。
github flow可以很簡單,也可以很複雜,
但是新手在用的時候,萬一忘了切換分支就亂push,
可能會把master搞得非常亂,
如果是用github作為remote repository,可以用pull request去避免這個問題。
這是github有的兩個服務所產生的,
一個是fork,另一個是pull request(簡稱PR)
首先先建立一個共同的remote repository,
然後各個組員用fork把此遠端數據庫fork一個回到自己的遠端數據庫。
此時就像自己一個人在用一樣,開發好的功能、de好的bug,
再利用PR回去共同的remote repository,
讓管理員審核,通過了才merge進master。
如圖所示: